package com.ruoyi.project.module.applicationProperty.service;

import com.ruoyi.project.module.applicationProperty.domain.ApplicationProperty;
import java.util.List;

/**
 * 应用属性 服务层
 * 
 * @author ruoyi
 * @date 2018-11-25
 */
public interface IApplicationPropertyService 
{
	/**
     * 查询应用属性信息
     * 
     * @param configApplicationPropertyId 应用属性ID
     * @return 应用属性信息
     */
	public ApplicationProperty selectApplicationPropertyById(Long configApplicationPropertyId);
	
	/**
     * 查询应用属性列表
     * 
     * @param applicationProperty 应用属性信息
     * @return 应用属性集合
     */
	public List<ApplicationProperty> selectApplicationPropertyList(ApplicationProperty applicationProperty);
	
	/**
     * 新增应用属性
     * 
     * @param applicationProperty 应用属性信息
     * @return 结果
     */
	public int insertApplicationProperty(ApplicationProperty applicationProperty);
	
	/**
     * 修改应用属性
     * 
     * @param applicationProperty 应用属性信息
     * @return 结果
     */
	public int updateApplicationProperty(ApplicationProperty applicationProperty);
		
	/**
     * 删除应用属性信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteApplicationPropertyByIds(String ids);


	public boolean importGroupProperty(Long configApplicationId,Long configGroupId,String propertyPrefix);


	/**
	 * 获取属性前缀的ID,如果没有则创建,例如: 日志 root 的前缀 logging.level , 获取
	 * @param configApplicationId
	 * @param propertyName
	 * @return
	 */
	ApplicationProperty getOrCreatedConfigApplicationPropertyByPropertyPrefix(Long configApplicationId,String propertyName);

	Boolean hasChilds(Long uniqueId);

	boolean importGroupPropertySelective(Long configApplicationId, Long[] configGroupPropertyIds, String propertyPrefix);
}
